草庐IT

php sql同步等待

全部标签

c# - 使用 LINQ ForEach() 异步等待

我有以下正确使用异步/等待范式的代码。internalstaticasyncTaskAddReferencseData(ConfigurationDbContextcontext){foreach(varsinkNameinRequiredSinkTypeList){varsinkType=newSinkType(){Name=sinkName};context.SinkTypeCollection.Add(sinkType);awaitcontext.SaveChangesAsync().ConfigureAwait(false);}}如果我不使用foreach(),而是想使用LIN

空条件运算符和等待的 C# 错误

我在C#中使用新的null条件运算符时遇到了一个有趣的System.NullReferenceException。如果“MyObject”为空,以下代码会给我一个NullReferenceException:awaitthis.MyObject?.MyMethod()如果“MyObject”为空,我本以为不会调用“MyMethod”,还是我误解了空条件运算符的用途? 最佳答案 您可以添加??运算符,因此如果?.返回空任务,请改用CompletedTask。await(this.MyObject?.MyMethod()??Task.C

c# - 等待 Selenium Webdriver 更改的最佳实践?

点击事件后,我需要等待元素属性发生变化,然后再继续(点击事件导致某些元素移出焦点,而某些其他元素通过JS获得焦点)在花时间在网络驱动程序中搜索“waitForAttribute”(selenium1命令)的可靠替代方案之后......我可以让下面的代码工作。但我不确定这是否是最好的实现...还有其他更好的解决方案吗?wait=newWebDriverWait(wedriver1,TimeSpan.FromSeconds(5));.....button.Click();wait.Until(webdriver1=>webdriver2.webelement.GetAttribute("s

c# - 等待 Task.Run 与等待

我在网上搜索过很多关于Task.Run和awaitasync的问题,但是有一个具体的使用场景我不太明白其中的区别。我相信场景非常简单。awaitTask.Run(()=>LongProcess());对比awaitLongProcess());LongProcess是一个异步方法,其中包含一些异步调用,例如使用awaitExecuteReaderAsync()调用db。问题:在这个场景下两者有什么区别吗?感谢任何帮助或输入,谢谢! 最佳答案 Task.Run可以将要处理的操作发布到不同的线程。这是唯一的区别。这可能有用-例如,如果L

c# - 使用进程间同步对象同步 2 个进程 - Mutex 或 AutoResetEvent

考虑以下场景:我正在运行我的应用程序,该应用程序在执行期间必须运行另一个进程,并且只有在第二个进程完成内部特定初始化之后,我的第一个进程才能继续。例如:...//Process1codedoesvariousinitializationshereProcess.Start("Process2.exe");//WaituntilProcess2finishesitsinitializationandonlythencontinue(Process2doesn'texit)...我看到几个选项:Mutex-在考虑进程间通信时会自动想到Mutex,但是,我看不出有什么方法可以让Process

c# - 编写一个等待 bool 值的异步方法

我想编写一个方法来等待将变量设置为true。这是伪代码。boolIsSomethingLoading=falseSomeDataTheData;publicasyncTaskGetTheData(){awaitIsSomethingLoading==true;returnTheData;}TheData将由PrismEvent与IsSomethingLoading变量一起设置。我调用了GetTheData方法,但我希望它异步运行(现在它只在数据未准备好时返回null。(这会导致其他问题。)有办法吗? 最佳答案 在许多类似的情况下,您

c# - 无法进行传出调用,因为应用程序正在调度输入同步调用

我从System.Thread.Timer线程池得到了这个(上面标题中的错误)所以我有我的TimerWrapper包装System.Thread.Timer将实际执行移动到System.Thread.ThreadPool并且我仍然得到它,所以我将它移动到一个新的Thread(callback).Start()并且我仍然得到它。当我将它放在一个全新的线程上时,它如何调度输入同步调用???这是一个非常非常小的原型(prototype)应用程序,我在其中所做的就是触发一个正在执行此操作的计时器...IEnumerableswc=SHDocVw.ShellWindows()HashSetwin

c# - 异步/等待高性能服务器应用程序?

C#5中新的async/await关键字看起来很有前途,但我读过一篇关于对这些应用程序的性能影响的文章,因为编译器将为异步方法生成一个非常复杂的状态机。使用这些关键字进行异步编程要容易得多,但它是否与SocketAsyncEventArgsforSockets一样好?第二个问题:像Stream.WriteAsync这样的异步IO方法真的是异步的(.Net上的完成端口或Mono上的epoll/poll)还是这些方法是将写调用推送到线程池的廉价包装器?第三个问题:除了UI应用程序的SynchronizationContext之外,有没有办法实现某种单线程上下文?类似于事件循环的东西,以便完

c# - ApiController Post 中的异步和等待

我对.net4.5中的async和await还不是很清楚。到目前为止,我想我明白await:将函数(在它的右边)放在一个单独的线程上。将执行返回给当前函数的调用者但在等待(异步)函数完成之前保留当前函数的其余代码“人质”。如果我误解了什么,请纠正我。因此,如果上述情况属实,我将无法使用我想要异步的ApiController的Post函数:[HttpPost]publicasyncTaskPost([FromBody]MyObjectobj){myDataContext.MyObjects.InsertOnSubmit(obj);myDataContext.SubmitChanges()

c# - 在 C# 中是否有保证 FIFO 顺序的同步类?

它是什么以及如何使用?我需要它,因为我有一个每秒插入数据库的计时器,并且我在计时器处理程序和主线程之间有一个共享资源。我想保证如果定时器处理程序在插入时花费的时间超过一秒,则等待的线程应该按顺序执行。这是我的计时器处理程序的示例代码:privatevoidInsertBasicVaraibles(objectparam){try{DataTablesMutex.WaitOne();//mutexformysharedresources//insertintoDB}catch(Exceptionex){//Handle}finally{DataTablesMutex.ReleaseMut